6B - President's Office - CodeForces Solution


implementation *1100

Please click on ads to support us..

Python Code:

n,m,c=input().split()
n,m=int(n),int(m)
a=[]
for i in range(n):
    a.append(input())
d=set()
for i in range(n):
    for j in range(m):
        if a[i][j]!=c:
            continue
      
        
        if i-1>=0 and a[i-1][j]!='.' and a[i-1][j]!=c:
            d.add(a[i-1][j])
        if j-1>=0 and a[i][j-1]!='.' and a[i][j-1]!=c:
            d.add(a[i][j-1])
        if i+1<n and a[i+1][j]!='.' and a[i+1][j]!=c:
            d.add(a[i+1][j])
        if j+1<m and a[i][j+1]!='.' and a[i][j+1]!=c:
            d.add(a[i][j+1])

        
print(len(d))
             

C++ Code:

/*
                  ___            _________                       ___              ____
  | |  / /       // \\          /          \     | |  / /       // \\         | ||    | |
  | | / /       //   \\        |    ____    |    | | / /       //   \\        | ||____| |
  | |/ /       //_____\\       |   /    \   |    | |/ /       //_____\\       | |_______|
  | |\ \      //_______\\      |   \____/   |    | |\ \      //_______\\      | | ____  |
  | | \ \    //         \\     |            |    | | \ \    //         \\     | ||    | |
  | |  \ \  //           \\    \ __________/     | |  \ \  //           \\    | ||____| |

*/
#include<iostream>
#include <numeric>
#include<string>
#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<ostream>
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#define fo(i,n) for (int i = 0; i < n; i++)
typedef vector<int>  ve;
typedef vector<bool>  vb;
typedef vector<ve>  vee;
typedef long long ll;
typedef  map<int, int> m;
ll GCD(ll a, ll b) { return (a) ? GCD(b % a, a) : b; }
ll LCM(ll a, ll b) { return a * b / GCD(a, b); }
#define all(a) (a).begin(), (a).end()
int dx[] = { -1,-1,-1,1,1,1 };
int dy[] = { -1, 0, 1,-1,0,1 };
int dx4[] = {0,0,1,-1};
int dy4[] = {-1,1,0,0};
//const string pi = "314159265358979323846264338327";
//void ragner()
//{
//    string n;
//    cin >> n;
//    int c = 0;
//    fo(i, n.size())
//    {
//        if (pi[i] == n[i])
//            c++;
//        else break;
//    }
//    cout << c;
//
//}
//void ragner()
//{
//    int n,s,r;
//    cin >> n>>s>>r;
//    int y = s - r;
//    ve a(n, 0);
//    a[n - 1] = y;
//    while (r>0)
//    {
//        fo(i, n - 1)
//        {
//            if (r == 0)
//                break;
//            else {
//                a[i]++;
//                r--;
//            }
//        }
//    }
//    fo(i, n)
//    {
//        cout << a[i] << " ";
//    }
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    map<int, int>ma;
//    vector<vector<int>> a(n,vector<int>(n-1));
//    int f;
//    fo(i, n)
//    {
//        fo(j, n - 1)
//        {
//            int x; cin >> x;
//            a[i][j] = x;
//            if (j == n - 2)
//            {
//                ma[x]++;
//                if (ma[x] > 1)
//                    f = x;
//            }
//        }
//    }
//    fo(i, n)
//    {
//        if (a[i][n - 2] != f)
//        {
//            fo(j, n - 1)
//            {
//                cout << a[i][j] << " ";
//            }
//            cout << f;
//            break;
//        }
//    }
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    ve ar(n);
//    ve v;
//    map<int,int> a;
//    fo(i, n)
//    {
//        cin >> ar[i];
//        if (a[ar[i]] == 0)
//            v.push_back(ar[i]);
//        a[ar[i]]++;
//    }
//    sort(all(v));
//    int c = 0;
//    fo(i, v.size())
//    {
//        while (a[v[i]] > 0)
//        {
//            c++;
//            a[v[i]]--;
//            int y = v[i];
//            while (a[++y] > 0)
//            {
//                a[y]--;
//            }
//
//        }
//    }
//    cout << c;
//}
//void ragner()
//{
//    int x;
//    cin >> x;
//    if (x % 2 != 0) { cout << -1; return; }
//    int a = x + (x / 2);
//    int b = x / 2;
//    if ((a ^ b) == x)
//    {
//        cout << a << " " << b;
//    }
//    else cout << -1;
//}
//int n;
//int ye(int i,ve a)
//{
//    int u = 0;
//    for (size_t j = i; j > 0 ; j--)
//    {
//        if (a[j] - a[j - 1] >= 0)
//            u++;
//        else break;
//    }
//    return u;
//}
//int sh(int i, ve a)
//{
//    int u = 0;
//    for (size_t j = i; j < n-1; j++)
//    {
//        if (a[j] - a[j + 1] >= 0)
//            u++;
//        else break;
//    }
//    return u;
//}
//void ragner()
//{
//    cin >> n;
//    ve a(n);
//    fo(i, n) cin >> a[i];
//    int c = 0;
//    if (n == 1)
//    {
//        cout << 1;
//        return ;
//    }
//    fo(i, n)
//    {
//        int y = 0;
//        if (i == 0)
//        {
//            for (size_t j = i; j < n-1; j++)
//            {
//                if (a[j] - a[j + 1] >= 0)
//                    y++;
//                else break;
//            }
//            y++;
//        }
//        else if (i == n - 1)
//        {
//            for (size_t j = i; j > 0; j--)
//            {
//                if (a[j] - a[j - 1] >= 0)
//                    y++;
//                else break;
//            }
//            y++;
//        }
//        else
//        {
//            int yemen = ye(i,a);
//            int shemal = sh(i,a);
//            y = yemen + shemal;
//            y++;
//        }
//        c = max(c, y);
//    }
//    cout << c;
//}
//void ragner()
//{
//    int n; int k;
//    cin >> n >> k;
//    ve a(n+1);
//    fo(i, n) cin >> a[i];
//    int l = k - 1;
//    int r = k + 1;
//    int c = 0;
//    if (a[k] == 1)
//        c++;
//    while (l > 0||r<=n)
//    {
//        if (l>0&&r<=n&&a[l] == a[r] && a[r] == 1)
//            c+=2;
//        if (l > 0 && r > n && a[l] == 1)
//            c++;
//        if (l <= 0 && r <= n && a[r] == 1)
//            c++;
//        l--;
//        r++;
//    }
//    cout << c;
//}
//void ragner()
//{
//    int n, m;
//    cin >> n >> m;
//    vector<pair<int, int>>a(m);
//    fo(i, m)
//    {
//        int x, y;
//        cin >> x>> y;
//        a[i].first = y;
//        a[i].second = x;
//    }
//    sort(all(a));
//    int c = 0;
//    for (int i = m-1; i >=0; i--)
//    {
//        if (n == 0) break;
//        while(a[i].second!=0&&n!=0)
//        {
//            c += a[i].first;
//            n--;
//            a[i].second--;
//        }
//    }
//    cout << c;
//}
//void ragner()
//{
//    int a, b;
//    cin >> a >> b;
//    int c1 = 0;
//    int c2 = 0;
//    int c3 = 0;
//    if (a == b)
//    {
//        cout << 0;
//        return;
//    }
//    while (1)
//    {
//        if (a % 2 == 0)
//        {
//            c1++;
//             a /= 2;
//        }
//        else if (a % 3 == 0)
//        {
//            c2++;
//            a /= 3;
//        }
//        else if (a % 5 == 0)
//        {
//            c3++;
//            a /= 5;
//        }
//        else break;
//    }
//    while (1)
//    {
//        if (b % 2 == 0)
//        {
//            c1--;
//            b /= 2;
//        }
//        else if (b % 3 == 0)
//        {
//            c2--;
//            b /= 3;
//        }
//        else if (b % 5 == 0)
//        {
//            c3--;
//            b /= 5;
//        }
//        else break;
//    }
//    if (a != b) { cout << -1; return; }
//    cout << abs(c1)+abs(c2)+abs(c3);
//}
//void ragner()
//{
//    int n; cin >> n;
//    ve a(n);
//    fo(i, n) cin >> a[i];
//    int dol = a[0];
//    int en = 0;
//    fo(i, n - 1)
//    {
//        if (a[i] - a[i + 1] >= 0)
//            en += a[i] - a[i + 1];
//        else if (en >= abs(a[i] - a[i + 1]))
//            en += a[i] - a[i + 1];
//        else
//        {
//            dol += abs(a[i] - a[i + 1]) - en;
//            en = 0;
//        }
//    }
//    cout << dol;
//}
//void ragner()
//{
//    string s; cin >> s;
//    if (s.size() == 1)
//    {
//        cout << 0;
//        return;
//    }
//    int sum = 0;
//    fo(i, s.size())
//        sum += (s[i] - '0');
//    string n = to_string(sum);
//    int c = 1;
//    while (n.size()!=1)
//    {
//        c++;
//        sum = 0;
//        fo(i, n.size())
//            sum += (n[i] - '0');
//        n = to_string(sum);
//    }
//    cout << c;
//}
//void dec(string &s, int n)
//{
//    int o;
//    if (n % 2 == 0)
//        o = n / 2 - 1;
//    else 
//    o= n / 2;
//    cout << s[o];
//    string h;
//    int k = 0;
//    fo(i, s.size())
//    {
//        if (i == o)
//            continue;
//        h+= s[i];
//    }
//    s = h;
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    string s;
//    string s2;
//    cin >> s;
//    if (n % 2 == 1)
//    {
//        fo(i, n)
//        {
//            if (i % 2 == 1)
//            {
//                s2 = s[i] + s2;
//            }
//            else s2+= s[i];
//        }
//    }
//    else
//    {
//            fo(i, n)
//            {
//                if (i % 2 == 0)
//                {
//                    s2 = s[i] + s2;
//                }
//                else s2 += s[i];
//            }
//    }
//    cout << s2;
//}
//string s = "ROYGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIV";
//void ragner()
//{
//    int n;
//    cin >> n;
//    fo(i, n)
//        cout <<s[i];
//}
//void ragner()
//{
//    int n; cin >> n;
//    vector<ll> a(n+1);
//    fo(i, n)
//    {
//        ll x;
//        cin >> x;
//        a[x] = i;
//    }
//    ll m; cin >> m;
//    ll v = 0;
//    ll p = 0;
//    fo(i, m)
//    {
//        ll x;
//        cin >> x;
//        v += a[x] + 1;
//        p += abs(n - a[x]);
//    }
//    cout << v << " " << p;
//}
//void ragner()
//{
//    map<char, int> a;
//    fo(i, 3)
//    {
//        char x1, x2, x3;
//        cin >> x1 >> x2 >> x3;
//        if (x2 == '>')
//        {
//            a[x1]++;
//        }
//        else a[x3]++;
//    }
//    if (a['A'] == a['B'] || a['B'] == a['C']||a['C']==a['A'])
//        cout << "Impossible";
//    else
//    {
//        
//        if (a['A'] == 0)
//            cout << 'A';
//        else if (a['B'] == 0)
//            cout << 'B';
//        else if (a['C'] == 0)
//            cout << 'C';
//        if (a['A'] == 1)
//            cout << 'A';
//        else if (a['B'] == 1)
//            cout << 'B';
//        else if (a['C'] == 1)
//            cout << 'C';
//        if (a['A'] == 2)
//            cout << 'A';
//        else if (a['B'] == 2)
//            cout << 'B';
//        else if (a['C'] == 2)
//            cout << 'C';
//
//    }
//}
//void ragner()
//{
//    ll n; cin >> n;
//    vector<ll> a(n+1);
//    vector<ll> a1(n+1);
//    vector<ll> a2(n+1);
//    a[0] = 0;
//    a1[0] = 0;
//    a2[0] = 0;
//    fo(i, n+1)
//    {
//        int x; cin >> x;
//        a[i] = x;
//        a1[i] = a1[i - 1] + a[i];
//    }
//    ll m; cin >> m;
//    vector<ll> b = a;
//    sort(all(b));
//    fo(i, n + 1)
//    {
//        a2[i] = a2[i - 1] + b[i];
//    }
//    fo(i, m + 1)
//    {
//        ll x, l, r;
//        cin >> x >> l >> r;
//        if (x == 1)
//        {
//            cout << a1[r] - a1[l-1];
//        }
//        else {
//            cout << a2[r] - a2[l-1];
//        }
//        cout << endl;
//    }
//    cout << endl;
//}
//void ragner()
//{
//    int n, k; cin >> n >> k;
//    ve a(n + 1);
//    ve a2(n -k+2);
//    a[0] = 0;
//    fo(i, n + 1)
//    {
//        int x; cin >> x;
//        a[i] = a[i - 1] + x;
//    }
//    fo(i, n - k + 2)
//    {
//        a2[i] = a[i + k - 1] - a[i - 1];
//    }
//    ll y = 1;
//    ll min = 999999465645546;
//
//        fo(i, n-k + 2)
//        {
//            if (a2[i] < min)
//            {
//                min = a2[i];
//                y = i;
//            }
//        }
//
//    cout << y;
//}
void ragner()
{
    int n, m;
    char x;
    cin >> n >> m>>x;
    vector<vector<char>>a(n,vector<char>(m));
    fo(i, n)
    {
        fo(j, m)
            cin >> a[i][j];
    }
    int c1 = 0;
    int c = 0;
    map<char, int>ma;
    fo(i, n)
    {
        fo(j, m)
        {
            if (a[i][j] != x)
                continue;
            fo(o, 4)
            {
                int x8 = i + dx4[o];
                int y = j + dy4[o];
                if (x8 < n && x8 >= 0 && y < m && y >= 0)
                {
                    char x1;
                    x1 = a[x8][y];
                    if(x1!='.'&&x1!=x)
                    ma[x1]++;
                }
            }
        }
    }
    cout << ma.size();
}
int main()
{
    int t = 1; //cin >> t;
    while (t--)
    {
        ragner();
        cout << endl;
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1151B - Dima and a Bad XOR
1435B - A New Technique
1633A - Div 7
268A - Games
1062B - Math
1294C - Product of Three Numbers
749A - Bachgold Problem
1486B - Eastern Exhibition
1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five